abstractMethod(ClassID,ID):-methodDefT(ID,ClassID, _, _, _, _, _, _, _),
modifierT(ID, 'abstract', _, _).

staticMethod(ClassID,ID):-methodDefT(ID,ClassID, _, _, _, _, _, _, _),
modifierT(ID, 'static', _, _).


allStaticMethods(ClassID):- findall(X,staticMethod(ClassID,X),L),length(L,N),findall(X1,methodDefT(X1,ClassID, _, _, _, _, _, _, _),L1),length(L1,N1),L==L1-1.


largo([],0):-!.

largo([C|R],N):-largo(R,N1),!,N is N1 + 1.

shortClass(X):- classDefT(X, _, _, Y, _, _),largo(Y,N), N < 3.


metodoGet(Nombre):- name(Nombre, [X,Y,Z|_]), X == 103, Y == 101, Z == 116.
metodoGet(Nombre):- name(Nombre, [X,Y,Z,T|_]), X == 39, Y == 71, Z == 101,T == 116.
metodoSet(Nombre):- name(Nombre, [X,Y,Z|_]), X == 115, Y == 101, Z == 116.
metodoSet(Nombre):- name(Nombre, [X,Y,Z,T|_]), X == 39, Y == 83, Z == 101,T == 116.

metodoGetSetCreate(ID):- methodDefT(ID,_, Nombre,_,_,_,_,_,_),(metodoGet(Nombre);metodoSet(Nombre);methodDefT(ID,_,'<init>',_,_,_,_,_,_)),!.

allmetodoGetSetCreate([]):-!.
allmetodoGetSetCreate([X|Y]):- metodoGetSetCreate(X), allmetodoGetSetCreate(Y).


checkParameters([],[]).
checkParameters([P1|C1],[P2|C2]):- paramDefT(P1, _, TYPE, _, _, _), paramDefT(P2, _, TYPE, _, _, _), checkParameters(C1,C2).